29a39114e94b6f9296cf26c017fe2ac80417c53d,src/main/java/de/ids_mannheim/korap/query/spans/RelationSpans.java,RelationSpans,readPayload,#CandidateSpan#,181

Before Change


            cs.setLeftEnd(cs.start + 1);
            cs.setRightStart(bb.getInt(1));
            cs.setRightEnd(bb.getInt(5));
            cs.setLeftId(bb.getShort(9)); // left id
            cs.setRightId(bb.getShort(11)); // right id
            if (length > 13) {
                cs.setSpanId(bb.getShort(13)); // relation id
            }
        }
        else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_TERM.value) { // length
            // 15
            cs.setEnd(bb.getInt(1));
            cs.setLeftEnd(cs.end);
            i = bb.getInt(5);
            cs.setRightStart(i);
            cs.setRightEnd(i + 1);
            cs.setLeftId(bb.getShort(9)); // left id
            cs.setRightId(bb.getShort(11)); // right id
            if (length > 13) {
                cs.setSpanId(bb.getShort(13)); // relation id
            }
        }
        else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_ELEMENT.value) {
            // length 19
            cs.setEnd(bb.getInt(1));
            cs.setLeftEnd(cs.end);
            cs.setRightStart(bb.getInt(5));
            cs.setRightEnd(bb.getInt(9));
            cs.setLeftId(bb.getShort(13)); // left id
            cs.setRightId(bb.getShort(15)); // right id
            if (length > 17) {
                cs.setSpanId(bb.getShort(17)); // relation id
            }

After Change


     * @param cs
     *            a CandidateRelationSpan
     */
    private void readPayload (CandidateSpan cs) {
        List<byte[]> payload = (List<byte[]>) cs.getPayloads();
        int length = payload.get(0).length;
        ByteBuffer bb = ByteBuffer.allocate(length);
        bb.put(payload.get(0));

        cs.setLeftStart(cs.start);

        int i;
        this.payloadTypeIdentifier = bb.get(0);

        if (payloadTypeIdentifier == PayloadTypeIdentifier.TERM_TO_TERM.value) { // length 11            
            i = bb.getInt(1);
            cs.setLeftEnd(cs.start + 1);
            cs.setRightStart(i);
            cs.setRightEnd(i + 1);
            if (length > 5) {
                cs.setLeftId(bb.getShort(5)); // left id
                cs.setRightId(bb.getShort(7)); // right id
                cs.setSpanId(bb.getShort(9)); // relation id
            }
        }
        else if (payloadTypeIdentifier == PayloadTypeIdentifier.TERM_TO_ELEMENT.value) { // length
            // 15
            cs.setLeftEnd(cs.start + 1);
            // 1-4 start element offset
            // 5-8 end element offset
            cs.setRightStart(bb.getInt(9));
            cs.setRightEnd(bb.getInt(13));
            if (length > 17) {
                cs.setLeftId(bb.getShort(17)); // left id
                cs.setRightId(bb.getShort(19)); // right id
                cs.setSpanId(bb.getShort(21)); // relation id
            }
        }
        else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_TERM.value) { // length
            // 15
            // 1-4 start element offset
            // 5-8 end element offset
            cs.setEnd(bb.getInt(9));
            cs.setLeftEnd(cs.end);
            i = bb.getInt(13);
            cs.setRightStart(i);
            cs.setRightEnd(i + 1);
            if (length > 13) {
                cs.setLeftId(bb.getShort(17)); // left id
                cs.setRightId(bb.getShort(19)); // right id
                cs.setSpanId(bb.getShort(21)); // relation id
            }
        }
        else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_ELEMENT.value) {
            // length 19

            // 1-4 start left-element offset
            // 5-8 end left-element offset
            // 9-12 start right-element offset
            // 13-16 end right-element offset

            cs.setEnd(bb.getInt(17));
            cs.setLeftEnd(cs.end);
            cs.setRightStart(bb.getInt(21));
            cs.setRightEnd(bb.getInt(25));
            if (length > 17) {
                cs.setLeftId(bb.getShort(29)); // left id
                cs.setRightId(bb.getShort(31)); // right id
                cs.setSpanId(bb.getShort(33)); // relation id
            }
        }